Prevent Internet Explorer’s Default Image Dragging Action

By  on  

Since the web is moving more and more toward a drag and drop world, it's important to prevent Internet Explorer's default dragging action when attempting to drag an image. JavaScript makes this possible.

Using MooTools

document.ondragstart = function () { return false; };

Happy dragging and dropping!

Recent Features

  • By
    Create a CSS Cube

    CSS cubes really showcase what CSS has become over the years, evolving from simple color and dimension directives to a language capable of creating deep, creative visuals.  Add animation and you've got something really neat.  Unfortunately each CSS cube tutorial I've read is a bit...

  • By
    Responsive and Infinitely Scalable JS Animations

    Back in late 2012 it was not easy to find open source projects using requestAnimationFrame() - this is the hook that allows Javascript code to synchronize with a web browser's native paint loop. Animations using this method can run at 60 fps and deliver fantastic...

Incredible Demos

  • By
    Smooth Scrolling with MooTools Fx.SmoothScroll

    I get quite a few support requests for my previous MooTools SmoothScroll article and the issue usually boils down to the fact that SmoothScroll has become Fx.SmoothScroll. Here's a simple usage of Fx.SmoothScroll. The HTML The only HTML requirement for Fx.SmoothScroll is that all named...

  • By
    HTML5 Input Types Alternative

    As you may know, HTML5 has introduced several new input types: number, date, color, range, etc. The question is: should you start using these controls or not? As much as I want to say "Yes", I think they are not yet ready for any real life...

Discussion

  1. Nice and simple. Just the way I like it!

  2. I think your header there is a touch misleading. Nothing in that code snippet requires moo unless ondragstart is a MooTools added event.

    The MooTools version I imagine would look something like..

    window.addEvent('dragstart',function(e) { if(e) { var evt = new Event(e).stop(); } });
    

    just my two bits.

  3. @David Nice tip – short, but useful!

    @Bryan – You are correct…

    document.ondragstart is actually a JScript (Microsoft) only method. I am pretty certain it is not defined in the ECMAScript documentation. David’s script will work just fine in non MS browsers too, though, since JavaScript allows object augmentation. In non MS browsers, this script will simply add a new method object to the document object – which is mostly inconsequential. I suppose if you’re concerned about modifying the document hash, you could always try something like this:

    if(document.ondragstart)
    {
    document.ondragstart = function() { return false; };
    }

  4. Thanx a lot for the tip it helped me a lot !

    J

  5. Callum Johnson

    Im trying to prevent a component of my navi bar to not be dragged.

    I’m using:

    //Home Button
    function mouseOverHome()
    {
    document.getElementById("home").src ="images/navigation bar/homeOUT.jpg";
    document.ondragstart = function () { return false; };
    }
    function mouseOutHome()
    {
    document.getElementById("home").src ="images/navigation bar/home.jpg";
    document.ondragstart = function () { return false; };
    }
    

    So why does this not prevent the image from being dragged in FF?

  6. Eric

    Thank you for this concise and helpful tidbit. It saved me additional searching. For those looking to inhibit dragging behavior on a individual element (an image in this example) rather than the whole document, try:  <img src=”blah.jpg” ondragstart=”return false” />

  7. Thank you! Finally a solution that is simple, and works on all browsers!

  8. Hey I have the solution that all browsers work with… doesn’t work for firefox if you have a lot of code so I came up with this. By adding an “!important” statement it tells it that it is the most important code to find so it refers to it before everything else:

    Also prevents right clicking and makes it un-selectable.

  9. We had this enabled in a .js file then had each page call on the file. It worked great but now we noticed one site copied an entire page of ours so we tried to do it our self in IE9 and was able to copy the same info.

    Does that mean IE9 now ignores it or is there a bug in IE9?

  10. Developer

    Please give me an example. GitHub or empty page.

    Case:

    I have two pages (in a different windows, for ex: ie 10)
    1 page with code document.ondragstart = function(){return false;}; (or other event)
    2d page with img

    then i drag image to first window.

    Result your method does not work.

  11. Luke

    Same here – it seems this method doesn’t work in any browser, not even IE11. Dragging and dropping image results in leaving page and going to image file. Anyone know of a workaround?

Wrap your code in <pre class="{language}"></pre> tags, link to a GitHub gist, JSFiddle fiddle, or CodePen pen to embed!